home *** CD-ROM | disk | FTP | other *** search
/ Practical Algorithms for Image Analysis / Practical Algorithms for Image Analysis.iso / TARFILE.GZ / tarfile / ch_3.5 / bcd / edge / find_edges.c < prev    next >
Encoding:
C/C++ Source or Header  |  1999-09-11  |  1.2 KB  |  53 lines

  1. /*
  2.  * (c) Copyright 1988 by
  3.  * Robotics Principles Research Department, ATT Bell Laboratories.
  4.  * All rights reserved.
  5.  * Last modified 2/8/88 Ingemar J. Cox
  6.  * C version 8/2/88 Deborah A. Wallach
  7.  * Automatic thresholding 9/30/88 Ingemar J. Cox
  8.  */
  9. #include <stdio.h>
  10. #include <math.h>
  11. #include "edge_finder.h"
  12.  
  13. extern struct image *my_image;
  14.  
  15. unsigned char*
  16. image_find_edges(sigma, threshold)
  17.      float sigma;
  18.      int *threshold;
  19. {
  20.     unsigned char *image_edges();
  21.  
  22.     fprintf(stderr, "\ngenerating filter sigma = %.1f", sigma);
  23.     generate_filter(sigma);
  24.     fprintf(stderr, " ( length = %d)\n", my_image->nf);
  25.  
  26.     fprintf(stderr, "\nconvolving image\n");
  27.     image_convolve(my_image->an_image);
  28.  
  29.     fprintf(stderr, "\ngenerating detx\n");
  30.     image_detx();
  31.  
  32.     fprintf(stderr, "\ngenerating dety\n");
  33.     image_dety();
  34.  
  35.     fprintf(stderr, "\ngenerating det45\n");
  36.     image_det45();
  37.  
  38.     fprintf(stderr, "\ngenerating det135\n");
  39.     image_det135();
  40.  
  41.     if(*threshold==0)
  42.     {
  43.         fprintf(stderr, "\nestimating threshold\n");
  44.         *threshold=image_threshold();
  45.     }
  46.     fprintf(stderr, "\ngenerating edge_map (threshold = %d)\n",
  47.         *threshold);
  48.     my_image->edge_map = image_edges(*threshold);
  49.  
  50.     return(my_image->edge_map);
  51. }
  52.  
  53.